/**
 *
 */
package com.evil.Servlet;

import com.evil.Bean.UserBean;
import com.evil.DAO.ShareDAO;
import com.evil.DAO.UserDAO;
import com.evil.Servlet.BaseServlet;

/******************************************
 * 工程名：EdaSupport<br>
 * 包名：com.evil.User<br>
 * 时间：2016年7月24日 上午10:36:48<br>
 * 作者：白雨濃 evil<br>
 * 邮箱：evilbai@foxmail.com<br>
 * 内容：用户登录<br>
 ******************************************/
public class LoginServlet extends BaseServlet
{
    private String type;
    private String phone;
    private String imei;

    private static final boolean isCheckHandan = false;/*是否检查为邯郸的手机号*/

    @Override
    public void doPost()
    {
        type = request.getParameter("type");
        phone = request.getParameter("phone");
        imei = request.getParameter("imei");

        log(phone);

        if (type != null)
        {
            if (type.equals("login") && phone != null && imei != null)
            {
                login();
            }
            else if (type.equals("register") && phone != null && imei != null)
            {
                register(isCheckHandan);
            }
            else
                print("ERROR");
        }
        else
            print("ERROR");
    }

    /**
     * 登陆操作
     *
     * @return
     */
    private void login()
    {
        UserDAO dao = new UserDAO();

        Object obj = dao.query_login(new UserBean(phone, imei));

        UserBean bean = null;
        String re = null;
        if (obj instanceof String)
            re = (String) obj;
        else if (obj instanceof UserBean)
            bean = (UserBean) obj;


        if (bean != null)
        {
            /*true为在黑名单中，正常为false*/
            if (!bean.isBlackList())
            {
                /*登录成功后记录最后一次登陆时间*/
                dao.updateLastLoginTime(phone);
                print("SUCCESS");//登陆成功
            }
            else
                print("BLACK");
        }
        else
        {
            if (re != null)
                if (re.equals("1"))
                    print("NEW");//没有该账号
                else
                    print("ERROR");
            else
                print("ERROR");
        }
    }

    /**
     * 第一次登陆，检测是否是邯郸手机号，是否存在该用户
     *
     * @param checkHandan 是否检测为邯郸的手机号，用于提交第三方审核
     */
    private void register(boolean checkHandan)
    {
        UserDAO dao = new UserDAO();
        String re = dao.query_phoneInHanDan(phone);

        if (checkHandan)
        {
            /*判断是是否为邯郸的手机号，包含IN_HANDAN和IN_HANDAN_SMALL*/
            if (re.equals("NOT_IN_HANDAN"))
                print(re);
            else if (re.contains("IN_HANDAN"))
                login();
        }
        else
            login();
    }
}
